Modern mobile devices such as smartphones and tablet computers enable users to quickly switch between multiple applications. For example, a user may switch back and forth between a video sharing application and a social media application. When an application running on a device becomes active (i.e., when the device displays an interface of the application), the application is said to be in the “foreground.” Otherwise, the application is said to be in the “background.” When an application is in the foreground, application manager of the device typically allocates three frame buffers in a memory to the application.
A display device updates displayed content according to a synchronization cycle (i.e., a sync cycle). For each sync cycle while an application is active, a device writes updated content data to a different one of the frame buffers allocated to the application. The content data comprises pixel values for display on the display device. Additionally, for each sync cycle while the application is active, the display device uses the content data stored in one of the frame buffers to display a frame. For example, during a first sync cycle, the display device may use content data stored in a first frame buffer to display a first frame while the device writes content data for an active application to a third frame buffer. In this example, during a second sync cycle, the display device may use content data stored in a second frame buffer to display a second frame while the host device writes content data for the active application to the first frame buffer. In this example, during a third sync cycle, the display device may use content data stored in the third frame buffer to display a third frame while the host device writes content data for the active application to the second frame buffer. This process may continue cycling through the frame buffers in this manner while the application remains active.